Ein Formular ist ein Hintergrund für Steuerelemente. Ein Formular ohne Steuerelemente heisst Formularrahmen. Formulare können vor- oder benutzerdefiniert sein. Zwei häufig vorkommende Arten vordefinierter Formulare (auch Dialogfelder genannt) sind Ausgabe- und Eingabefelder.
Ein Ausgabefeld besteht aus den Steuerelementen ...
Titelleiste (title)
Bezeichnungsfeld (prompt)
Schaltfläche (meist OK).
MsgBox Prompt := “Dateien schliessen”, Title := “Dateien”
![]()
Im Gegensatz zum Ausgabefeld lässt sich der Inhalt eines Eingabefelds ändern. Den änderbaren (weissen) Teil nennt man Textfeld.
Länge = InputBox(Prompt:=“Länge eingeben”,Title:=“Länge”)
Die Argumente der obigen Beispiele heissen benannt, weil vor jedem Argumentwert ein erklärender Name, zum Beispiel Prompt, steht. Im Aufruf Quadrat "Ausgabeblatt",200,100,100 sind "Ausgabeblatt" (Tabellenblatt), 200 (X-Koordinate), 100 (Y-Koordinate) und 100 (Seitenlänge) hingegen Positionsargumente. Ihre Bedeutung geht nicht aus einem vorangestellten Namen, sondern nur aus ihrer relativen Position hervor. Die beiden folgenden Beispiele illustrieren die Vor- und Nachteile benannter Argumente:
MsgBox “Schliessen”, 0, “Dateien”
MsgBox Prompt := “Schliessen”, Title := “Dateien”.
Der erste Aufruf verwendet Positionsargumente, der zweite benannte Argumente. Benannte Argumente können einen Aufruf verkürzen, weil nur die benötigten Argumente angegeben werden müssen. Ausserdem verbessern sie die Leserlichkeit und können in beliebiger Reihenfolge in der Argumenteliste erscheinen. Systemdefinierte Unterprogramme verwenden oft benannte Argumente. Die meisten Programmierer verwenden für benutzerdefinierte Unterprogramme hingegen Positionsargumente, weil ihnen die Bedeutung der Argumente klar ist oder die Definition benannter Argumente zu aufwändig ist.
Wenn der Programmierer ein benanntes Argument weglässt, dann gilt dessen Voreinstellung (engl. default). Enthält der Aufruf von MsgBox zum Beispiel keinen Titel, dann setzt VBA den Default "". Die folgende Tabelle nennt die Namen und Voreinstellungen der vordefinierten Anweisung MsgBox. Die Reihenfolge der fünf Argumente ist dann vorgeschrieben, wenn der Programmierer Positions- statt benannte Argumente wählt.
|
Name |
Bedeutung |
Voreinstellung |
|
Prompt |
Meldungstext |
|
|
Buttons |
Zahl und Art der Schaltflächen |
0 |
|
Title |
Titelleiste |
|
|
Helpfile |
zusammen mit context |
weglassen |
|
Context |
zusammen mit helpfile |
weglassen |
Die obigen Beispiele MsgBox und InputBox illustrieren nicht nur den Unterschied zwischen Positions- und benannten Argumenten, sondern veranschaulichen auch die (wenig intuitive) Klammerregel von Visual Basic. Die Argumente des Aufrufs einer Subroutine dürfen nicht zwischen Klammern stehen:
MsgBox Prompt := “Dateien schliessen”, Title := “Dateien”.
Die Argumente eines Funktionsaufrufs mit einem Rückgabewert verlangen hingegen Klammern:
Länge = InputBox(Prompt:=“Länge: ”, Title:=“Länge”).